package com.bcq.example.consumer;


import com.bcq.bcqrpc.proxy.ServiceProxyFactory;
import com.bcq.example.common.model.User;
import com.bcq.example.common.service.UserService;

/**
 * 简易服务消费者示例
 */
public class EasyConsumerExample {

    public static void main(String[] args) {


        //静态代理
        //UserService userService = new UserServiceProxy();

        // 动态代理
        //userService 是一个动态代理对象，类型为 UserService。
        //它并不是直接实现 UserService 接口的具体类实例，而是由 JDK 动态生成的代理类实例。
        UserService userService = ServiceProxyFactory.getProxy(UserService.class);


        User user = new User();
        user.setName("BCQ");
        // 调用
        //当调用代理对象的方法时，实际执行的是 ServiceProxy 类中 invoke 方法的逻辑。
        User newUser = userService.getUser(user);
        if (newUser != null) {
            System.out.println(newUser.getName());
        } else {
            System.out.println("user == null");
        }
    }
}
